package com.ruoyi.common.core.domain.entity.system;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.BaseOrder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 计时计费订单对象 sys_jishi_order
 *
 * @author zjw
 * @date 2023-08-18
 */
public class SysJishiOrder extends BaseOrder {
    private static final long serialVersionUID = 1L;

    /**
     * 押金的商户订单编号
     */
    @Excel(name = "押金的商户订单编号")
    private String depositOutOrderNo;

    /**
     * 押金的微信订单编号
     */
    @Excel(name = "押金的微信订单编号")
    private String depositWxOrderNo;

    /**
     * 押金的商户退款单号
     */
    @Excel(name = "押金的商户退款单号")
    private String depositOutRefundNo;

    /**
     * 押金的微信退款单号
     */
    @Excel(name = "押金的微信退款单号")
    private String depositWxRefundNo;

    /**
     * 费用的商户订单编号
     */
    @Excel(name = "费用的商户订单编号")
    private String feeOutOrderNo;

    /**
     * 费用的微信订单编号
     */
    @Excel(name = "费用的微信订单编号")
    private String feeWxOrderNo;

    /**
     * 费用的商户退款单号
     */
    @Excel(name = "费用的商户退款单号")
    private String feeOutRefundNo;

    /**
     * 费用的微信退款单号
     */
    @Excel(name = "费用的微信退款单号")
    private String feeWxRefundNo;

    /**
     * 计时收费规则id。默认为0。
     */
    @Excel(name = "计时收费规则id。默认为0。")
    private Integer jishiId;

    /**
     * 退款文本描述，示例：用户超时未上船，系统主动退款。
     */
    @Excel(name = "退款文本描述，示例：用户超时未上船，系统主动退款。")
    private String refundDesc;

    /**
     * 订单费用金额，单位：元。
     */
    @Excel(name = "订单费用金额，单位：元。")
    private Double orderFee;

    /**
     * 订单费用支付状态。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款
     */
    @Excel(name = "订单费用支付状态。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款")
    private Integer feePayStatus;

    /**
     * 订单费用支付状态文本描述。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款
     */
    @Excel(name = "订单费用支付状态文本描述。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款")
    private String feePayStatusDesc;

    /**
     * 实际支付的订单费用金额，单位：元。
     */
    @Excel(name = "实际支付的订单费用金额，单位：元。")
    private Double realPayFee;

    /**
     * 订单押金金额，单位：元。
     */
    @Excel(name = "订单押金金额，单位：元。")
    private Double orderDeposit;

    /**
     * 订单押金支付状态。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款
     */
    @Excel(name = "订单押金支付状态。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款")
    private Integer depositPayStatus;

    /**
     * 订单押金支付状态文本描述。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款
     */
    @Excel(name = "订单押金支付状态文本描述。0：未支付，1：支付中，2：已支付，3：退款中，4: 退款失败，5：已退款")
    private String depositPayStatusDesc;

    /**
     * 实际支付的订单押金金额，单位：元。
     */
    @Excel(name = "实际支付的订单押金金额，单位：元。")
    private Double realPayDeposit;

    /**
     * 订单总金额(订单费用+押金)，单位：元。
     */
    @Excel(name = "订单总金额(订单费用+押金)，单位：元。")
    private Double orderTotalPrice;

    /**
     * 用户已实际支付的订单总金额(订单费用+押金)，单位：分。
     */
    @Excel(name = "用户已实际支付的订单总金额(订单费用+押金)，单位：分。")
    private Double realPayTotalPrice;

    /**
     * 订单费用的支付方式。0：未支付，1：微信支付，2：支付宝，3：银行卡。
     */
    @Excel(name = "订单费用的支付方式。0：未支付，1：微信支付，2：支付宝，3：银行卡。")
    private Integer feePayMethod;

    /**
     * 订单费用支付方式的文字描述。如：“微信零钱支付”等。
     */
    @Excel(name = "订单费用支付方式的文字描述。如：“微信零钱支付”等。")
    private String feePayMethodDesc;

    /**
     * 订单押金的支付方式。0：未支付，1：微信支付，2：支付宝，3：银行卡。
     */
    @Excel(name = "订单押金的支付方式。0：未支付，1：微信支付，2：支付宝，3：银行卡。")
    private Integer depositPayMethod;

    /**
     * 订单押金支付方式的文字描述。如：“微信零钱支付”等。
     */
    @Excel(name = "订单押金支付方式的文字描述。如：“微信零钱支付”等。")
    private String depositPayMethodDesc;

    /**
     * 退款金额，单位：元。
     */
    @Excel(name = "退款金额，单位：元。")
    private Double refundAmount;

    /**
     * 退款失败原因。
     */
    @Excel(name = "退款失败原因。")
    private String refundFailReason;

    public void setDepositOutOrderNo(String depositOutOrderNo) {
        this.depositOutOrderNo = depositOutOrderNo;
    }

    public String getDepositOutOrderNo() {
        return depositOutOrderNo;
    }

    public void setDepositWxOrderNo(String depositWxOrderNo) {
        this.depositWxOrderNo = depositWxOrderNo;
    }

    public String getDepositWxOrderNo() {
        return depositWxOrderNo;
    }

    public void setDepositOutRefundNo(String depositOutRefundNo) {
        this.depositOutRefundNo = depositOutRefundNo;
    }

    public String getDepositOutRefundNo() {
        return depositOutRefundNo;
    }

    public void setDepositWxRefundNo(String depositWxRefundNo) {
        this.depositWxRefundNo = depositWxRefundNo;
    }

    public String getDepositWxRefundNo() {
        return depositWxRefundNo;
    }

    public void setFeeOutOrderNo(String feeOutOrderNo) {
        this.feeOutOrderNo = feeOutOrderNo;
    }

    public String getFeeOutOrderNo() {
        return feeOutOrderNo;
    }

    public void setFeeWxOrderNo(String feeWxOrderNo) {
        this.feeWxOrderNo = feeWxOrderNo;
    }

    public String getFeeWxOrderNo() {
        return feeWxOrderNo;
    }

    public void setFeeOutRefundNo(String feeOutRefundNo) {
        this.feeOutRefundNo = feeOutRefundNo;
    }

    public String getFeeOutRefundNo() {
        return feeOutRefundNo;
    }

    public void setFeeWxRefundNo(String feeWxRefundNo) {
        this.feeWxRefundNo = feeWxRefundNo;
    }

    public String getFeeWxRefundNo() {
        return feeWxRefundNo;
    }

    public void setJishiId(Integer jishiId) {
        this.jishiId = jishiId;
    }

    public Integer getJishiId() {
        return jishiId;
    }

    public void setRefundDesc(String refundDesc) {
        this.refundDesc = refundDesc;
    }

    public String getRefundDesc() {
        return refundDesc;
    }

    public void setOrderFee(Double orderFee) {
        this.orderFee = orderFee;
    }

    public Double getOrderFee() {
        return orderFee;
    }

    public void setFeePayStatus(Integer feePayStatus) {
        this.feePayStatus = feePayStatus;
    }

    public Integer getFeePayStatus() {
        return feePayStatus;
    }

    public void setFeePayStatusDesc(String feePayStatusDesc) {
        this.feePayStatusDesc = feePayStatusDesc;
    }

    public String getFeePayStatusDesc() {
        return feePayStatusDesc;
    }

    public void setRealPayFee(Double realPayFee) {
        this.realPayFee = realPayFee;
    }

    public Double getRealPayFee() {
        return realPayFee;
    }

    public void setOrderDeposit(Double orderDeposit) {
        this.orderDeposit = orderDeposit;
    }

    public Double getOrderDeposit() {
        return orderDeposit;
    }

    public void setDepositPayStatus(Integer depositPayStatus) {
        this.depositPayStatus = depositPayStatus;
    }

    public Integer getDepositPayStatus() {
        return depositPayStatus;
    }

    public void setDepositPayStatusDesc(String depositPayStatusDesc) {
        this.depositPayStatusDesc = depositPayStatusDesc;
    }

    public String getDepositPayStatusDesc() {
        return depositPayStatusDesc;
    }

    public void setRealPayDeposit(Double realPayDeposit) {
        this.realPayDeposit = realPayDeposit;
    }

    public Double getRealPayDeposit() {
        return realPayDeposit;
    }

    public void setOrderTotalPrice(Double orderTotalPrice) {
        this.orderTotalPrice = orderTotalPrice;
    }

    public Double getOrderTotalPrice() {
        return orderTotalPrice;
    }

    public void setRealPayTotalPrice(Double realPayTotalPrice) {
        this.realPayTotalPrice = realPayTotalPrice;
    }

    public Double getRealPayTotalPrice() {
        return realPayTotalPrice;
    }

    public void setFeePayMethod(Integer feePayMethod) {
        this.feePayMethod = feePayMethod;
    }

    public Integer getFeePayMethod() {
        return feePayMethod;
    }

    public void setFeePayMethodDesc(String feePayMethodDesc) {
        this.feePayMethodDesc = feePayMethodDesc;
    }

    public String getFeePayMethodDesc() {
        return feePayMethodDesc;
    }

    public void setDepositPayMethod(Integer depositPayMethod) {
        this.depositPayMethod = depositPayMethod;
    }

    public Integer getDepositPayMethod() {
        return depositPayMethod;
    }

    public void setDepositPayMethodDesc(String depositPayMethodDesc) {
        this.depositPayMethodDesc = depositPayMethodDesc;
    }

    public String getDepositPayMethodDesc() {
        return depositPayMethodDesc;
    }

    public void setRefundAmount(Double refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Double getRefundAmount() {
        return refundAmount;
    }

    public void setRefundFailReason(String refundFailReason) {
        this.refundFailReason = refundFailReason;
    }

    public String getRefundFailReason() {
        return refundFailReason;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("orderId", getOrderId())
                .append("scenicId", getScenicId())
                .append("wharfId", getWharfId())
                .append("boatId", getBoatId())
                .append("depositOutOrderNo", getDepositOutOrderNo())
                .append("depositWxOrderNo", getDepositWxOrderNo())
                .append("depositOutRefundNo", getDepositOutRefundNo())
                .append("depositWxRefundNo", getDepositWxRefundNo())
                .append("feeOutOrderNo", getFeeOutOrderNo())
                .append("feeWxOrderNo", getFeeWxOrderNo())
                .append("feeOutRefundNo", getFeeOutRefundNo())
                .append("feeWxRefundNo", getFeeWxRefundNo())
                .append("orderType", getOrderType())
                .append("jishiId", getJishiId())
                .append("orderStatus", getOrderStatus())
                .append("orderStatusDesc", getOrderStatusDesc())
                .append("orderDesc", getOrderDesc())
                .append("refundDesc", getRefundDesc())
                .append("orderFee", getOrderFee())
                .append("feePayStatus", getFeePayStatus())
                .append("feePayStatusDesc", getFeePayStatusDesc())
                .append("realPayFee", getRealPayFee())
                .append("orderDeposit", getOrderDeposit())
                .append("depositPayStatus", getDepositPayStatus())
                .append("depositPayStatusDesc", getDepositPayStatusDesc())
                .append("realPayDeposit", getRealPayDeposit())
                .append("orderTotalPrice", getOrderTotalPrice())
                .append("realPayTotalPrice", getRealPayTotalPrice())
                .append("feePayMethod", getFeePayMethod())
                .append("feePayMethodDesc", getFeePayMethodDesc())
                .append("depositPayMethod", getDepositPayMethod())
                .append("depositPayMethodDesc", getDepositPayMethodDesc())
                .append("refundAmount", getRefundAmount())
                .append("refundFailReason", getRefundFailReason())
                .append("userId", getUserId())
                .append("realDuration", getRealDuration())
                .append("createTime", getCreateTime())
                .append("beginTime", getBeginTime())
                .append("endTime", getEndTime())
                .append("closedTime", getClosedTime())
                .append("remark", getRemark())
                .toString();
    }
}
